# 前端的（一般就是这个配置）
FROM nginx:latest

# 将项目根目录下dist文件夹（构建之后才会生成）下的所有文件复制到镜像/usr/share/nginx/html/目录下 
COPY dist /usr/share/nginx/html
#　修改nginx的配置项（得根目录有default.conf copy进镜像里面覆盖原来镜像的默认配置的）
COPY default.conf /etc/nginx/conf.d

# 前端的
# prod Start

# 运行 基础镜像
FROM node:14.18-alpine

ARG mode

#设置node环境变量为production
ENV NODE_ENV=production
ENV HOST 0.0.0.0

# COPY --from=build /app /app
# 使用缓存中的文件
COPY dist /app

WORKDIR /app

# 暴露端口
EXPOSE 3333

ENV modeEnv=${mode}

#设置容器启动时执行的命令
RUN echo modeEnv
RUN echo mode
RUN echo npm run start:$modeEnv

ENTRYPOINT npm run start:$modeEnv

# ENTRYPOINT [ "npm","start" ]

# prod End

# localTest Start

# 使用node:14.18.0 作为基础进行构建
# FROM node:14.18.0 as build

# #创建/app 目录作为部署目录,创建容器实例时,挂载此目录

# RUN mkdir -p /app
# WORKDIR /app

# COPY ["package.json","package-lock.json","./"]

# RUN yarn

# COPY . ./

# RUN yarn run build

# # run

# FROM node:14.18-alpine

# ARG mode

# #设置node环境变量为production

# ENV NODE_ENV=production

# ENV HOST 0.0.0.0

# ENV modeEnv=${mode}

# COPY --from=build /app /app

# WORKDIR /app

# # 暴露端口
# EXPOSE 3333
# # echo

# #设置容器启动时执行的命令
# ENTRYPOINT npm run start:$modeEnv
# localTest End


# 后端的

# 基础镜像
FROM golang:1.16-alpine AS builder

# 环境变量
ENV GO111MODULE on
ENV GOPROXY https://goproxy.cn

# 切换到/go/cache这个路径（路径不存在则直接创建）
WORKDIR /go/cache

# 使用缓存中的文件
COPY go.mod .
COPY go.sum .
RUN go mod download

WORKDIR /go/src
COPY . .
ENV CGO_ENABLE 0
ENV GOOS linux
RUN go build -o main main.go

# 把上面打包的可执行文件放到一个比较小的环境里面（alpine）
FROM registry-vpc.cn-shenzhen.aliyuncs.com/readboy_zs/alpine:3.16
ARG GIN_MODE=debug
ENV GIN_MODE $GIN_MODE
WORKDIR /app
EXPOSE 8200
COPY --from=builder /go/src/main ./main
CMD ["/app/main"]
